Generally, digital images are composed of pixels (picture elements). Each pixel represents a color (or a gray level for black and white images) at a single point in the image. A pixel is typically stored within a memory of a system according to its red, green, and blue (RGB) levels.
In general, colors may be combined in two different ways: additive color mixing and subtractive color mixing. Subtractive color mixing describes how two color inks combine on a surface to form a different color. The three subtractive primary colors are Cyan (blue-green), Magenta (purple-red), and Yellow. Color printers typically utilize a subtractive color model and use cyan, magenta and yellow inks to produce color images. Additionally, black ink is often used to compensate for the impure color in the inks, resulting in a cyan, magenta, yellow and black (CMYK) color model. Color printers may also use additional inks (for instance, light cyan ink, light magenta ink, and the like) to improve certain characteristics of the output image. Display devices, such as computer monitors, typically utilize the additive color model, where the image is formed on the face of the monitor by combining beams of red, green and blue (RGB) light in different proportions.
In many printing systems, an image to be printed is delivered by a computing system in an RGB color space rather than in the CMYK color space that is native to the printing system. In this situation, the printing device maps the image from the input RGB color space to the printer's CMYK color space prior to printing. The process of mapping from one color space to another is known as color space conversion.
Typically, printing systems perform color space conversions using a technique that is based on a 3-dimensional (3-D) color look-up table (LUT). With this technique, a 3-D LUT is constructed that contains the desired CMYK output values for the combinations of RGB input values. Using the 3-D LUT, each pixel of the input RGB image is converted to the CMYK color space by selecting the CMYK output value from the location within the 3-D LUT corresponding to the input RGB value.
In practice, it is not necessary to employ a 3-D LUT that maps all possible combinations for the input values of red, green and blue. Instead, many systems utilize a 3-D LUT that includes CMYK color space values only for a subset of the possible input RGB color combinations. By utilizing a 3-D LUT that includes CMYK values for only a subset of the RGB color combinations, inaccuracies may be introduced in the color space conversion process. When using a subset 3-D LUT, certain combinations of input RGB values are simply not available within the LUT. One approach for handling such unmapped RGB combinations is to select an output CMYK value within the LUT that corresponds to an RGB combination that is closest to the unmapped RGB combination. Another approach for handling such unmapped RGB values utilizes interpolation to derive the output CMYK value from a set of CMYK values within a LUT, where the set of CMYK values corresponds to RGB combinations that closely match the unmapped RGB combination.
A subset 3-D LUT may be described in terms of the number of sample points for each of the red, green, and blue input values. A 17×17×17 table, for instance, is based on input RGB sample points corresponding to 17 levels of red, 17 levels of green, and 17 levels of blue. A 17×17×17 3-D LUT thus contains output CMYK values for 4913 (17×17×17=4913) different input RGB combinations. Printing systems commonly utilize subset 3-D LUTs of size 17×17×17 or 9×9×9. A 17×17×17 3-D LUT is said to be larger than a 9×9×9 3-D LUT because it maps a larger number of input RGB combinations.
The number of RGB color combinations mapped by a subset 3-D LUT is an important design element in a color space conversion system. The size of the 3-D LUT directly affects the color reproduction accuracy. Larger 3-D LUTs provide better color accuracy because a larger fraction of RGB color combinations can be mapped natively by the 3-D LUT. Thus, from a color accuracy point of view, larger 3-D LUTs may be preferred.
However, the size of the 3-D LUT may also impact system cost and performance. Smaller 3-D LUTs require less memory for storage and thus may offer a cost advantage over larger 3-D LUTs, both in terms of the real estate of the integrated circuit substrate and in terms of the production costs. Smaller 3-D LUTs may also offer a performance advantage. In some cases, a small 3-D LUT can be located on the same chip as the color space conversion computation engine (such as an image processor) itself, which may yield a performance advantage. Thus, from a perspective of cost and speed, a smaller 3-D LUT may be preferred.
Accordingly, there is a need for an improved color conversion system and method, which combines the color accuracy of large 3-D LUTs with the cost and performance efficiencies of small 3-D LUTs.